package objects

import "reflect"

// Empty : 判断对象是否为空
//
// 0, 空字符串为空值, 目前仅支持字符串, 数组(切片)判空
//
// -------------------
//
// *** author: whmmm ***
//
// *** date: 2021-12-14 12:01 ***
func Empty(any interface{}) bool {
	if any == nil {
		return true
	}
	// 判断是否是切片或 map.
	kind := reflect.TypeOf(any).Kind()
	if kind == reflect.Slice || kind == reflect.Map {
		return reflect.ValueOf(any).Len() == 0
	}

	switch any.(type) {
	case string:
		return "" == any
	}

	return false
}

// NotEmpty : 判断非空, 取反 Empty
//
// -------------------
//
// *** author: whmmm ***
//
// *** date: 2021-12-14 12:06 ***
func NotEmpty(any interface{}) bool {
	return !Empty(any)
}
